package utilidades.db;

import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;

public class ServicioBD {

	/**
	 * Base de datos
	 */
	private RecordStore rs;
	
	/**
	 * Nombre de la Base de datos
	 */
	private String nombre;
	
	
	
	
	/**
	 * Constructor
	 * @param nombre Nombre de la BD
	 */
	public ServicioBD(String nombre){
		
		this.nombre = nombre;
	}
	
	/**
	 * Abre una BD. Si esta no existe crea una nueva
	 * 
	 * @param nombreBD
	 */
	public void open(){
		
		try {
			rs = RecordStore.openRecordStore(nombre, true );
		} catch (RecordStoreException e) {
			System.out.println("Error. No se ha podido abrir la BD " + getNombre());
			e.printStackTrace();
		}
	}
	
	/**
	 * Cierra la base de datos
	 */
	public void close(){
		try {
			rs.closeRecordStore();
		} catch (RecordStoreException e) {
			System.out.println("Error. No se ha podido cerrar la BD "+ getNombre());
			e.printStackTrace();
		}
	}

	/**
	 * Elimina la BD  
	 */
	public void delete(){

		if (RecordStore.listRecordStores() != null)
		{
			try
			{
				RecordStore.deleteRecordStore(getNombre());
			}
			catch (Exception e)
			{
				System.out.println("Error. No se ha podido eliminar la BD "+ getNombre());  
				e.printStackTrace();
			}
		}      
	}
	
	
	public void escribirRegistro(byte[] obj)
	{
		try
		{
			rs.addRecord(obj, 0, obj.length);
		}
		catch (Exception e)
		{
			System.out.println("Error. No se ha podido escribir en la BD "+ getNombre() );
		}
	}

	/** Getters & Setters **/ 
	
	public RecordStore getRs() {
		return rs;
	}
	
	public void setRs(RecordStore rs) {
		this.rs = rs;
	}
	
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
}
